Data centers typically deploy a large number of servers. Customers of the data center may contract with the data center for access to, and use of, the deployed servers. The various customers, and even a single customer, may have widely-varying needs with respect to the deployed servers. Therefore, the data center may deploy multiple types of servers, each specifically configured to meet the needs of a corresponding customer.
When a new server is deployed within the data center, the new server must go through a series of provisioning and configuration steps. For example, a new, basic server may first be provided with a desired operating system (OS). Subsequently, a desired set of software applications may be installed, corresponding to predetermined needs of a corresponding customer. Security policies may then be implemented with respect to the server. As a final example, it may be necessary to schedule future tasks to be implemented by the server (e.g., compliance checks or automated data back-up procedures).
These and varying other provisioning activities must generally be performed separately, in a correct sequence, and by various types of users, who must thus communicate with one another in order to correctly execute the provisioning of the server in question. It is difficult for the users to execute their assigned tasks correctly, to coordinate with one another effectively, and to be aware of current best practices with respect to their assigned tasks. Consequently, data centers may suffer from unreliable, time-consuming, and generally inefficient provisioning of servers, which may lead to reduced profits and/or increased customer dissatisfaction.